7317
14505
To pytanie ma już tutaj odpowiedzi:
Jak zwrócić odpowiedź z wywołania asynchronicznego?
(42 odpowiedzi)
Zamknięte 5 miesięcy temu.
Zatem podczas uruchamiania poniższego kodu odpowiedź pliku console.log (ba) jest niezdefiniowana
Ale kiedy spróbuję tego w konsoli Chrome V8, otrzymuję poprawny wynik, którego oczekuję. Nie jestem do końca pewien, co się tutaj dzieje.
niech ba;
function Setqa () {
(async () => {
czekaj na pobranie ('questions.json')
.then (res => res.json ())
.then (async (data) => {
ba = oczekiwanie na dane;
});
}) ();
}
Setqa ();
console.log (ba);
Zawartość pliku json jest następująca:
"pytania": [{
"questionType": "wiele",
"question": "Jaka jest pogoda",
"odpowiedzi": "",
"pytanie odpowiedź": ""
},
{
"questionType": "wiele",
"question": "Jak się dzisiaj masz?",
"odpowiedzi": " 1",
"questionAnswer": "textPurpose1"
}
] 
Myślę, że to powinno działać
niech ba;
function Setqa () {
return fetch ('questions.json')
.then (res => res.json ())
.then (async (data) => {
ba = oczekiwanie na dane;
});
}
Setqa (). Then (() => console.log (ba));
Ale lepsze byłoby podejście
async function setQa () {
const res = await fetch ('questions.json');
return res.json ();
}
let ba = czekaj setQa ();
|
Nie szukasz odpowiedzi? Przeglądaj inne pytania otagowane javascript json pobierz console.log lub zadaj własne pytanie.